package com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios;

import javax.activation.DataHandler;
import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;

import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.entrada.ParametrosEnvio;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaArbol;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaDescargaReportes;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaEjecutarConsultas;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaEjecutarModificaciones;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaEnvioCorreo;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaFinal;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaGeneraReportes;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.servicios.salida.RespuestaValidarUsuario;

@WebService
@XmlSeeAlso({RespuestaEjecutarConsultas.class, RespuestaValidarUsuario.class})
public interface NodoCentral {
	@WebResult(name = "Respuesta")
	public RespuestaValidarUsuario	validarUsuario(
			@WebParam(name = "ipAdress", partName = "parameters", mode = Mode.IN, header = false) String ipAdress,
			@WebParam(name = "tipo_acceso", partName = "parameters", mode = Mode.IN, header = false) Long tipo_acceso,
			@WebParam(name = "tokenReferencia", partName = "parameters", mode = Mode.IN, header = false) String tokenReferencia
			);
	
	public RespuestaEjecutarConsultas ejecutaconsulta(@WebParam(name = "MetodoRemoto", partName = "parameters", mode = Mode.IN, header = false) String MetodoRemoto);
	
	public RespuestaEjecutarModificaciones ejecutamodificaciones();
	
	public RespuestaGeneraReportes generaReportes();
	
	public RespuestaDescargaReportes descargaReportes();
	
	@WebResult(name = "RespuestaFinal")
	public RespuestaFinal invalidaToken(@WebParam(name = "tokenReferencia", partName = "parameters", mode = Mode.IN, header = false) String tokenReferencia);

	public RespuestaEnvioCorreo envioCorreo(
			@WebParam(name = "envioparam", partName = "parameters", mode = Mode.IN, header = false) ParametrosEnvio envioparam,
			@WebParam(name = "adjuntoB64", partName = "parameters", mode = Mode.IN, header = false) String AdjuntoB64,
			@WebParam(name = "AdjuntoBin", partName = "parameters", mode = Mode.IN, header = false) DataHandler AdjuntoBin,
			@WebParam(name = "mensaje", partName = "parameters", mode = Mode.IN, header = false) String mensaje
			);
	
	public RespuestaArbol generaArbol(@WebParam(name = "codPadre", partName = "parameters", mode = Mode.IN, header = false) String codPadre);
}
